home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / slither.arc / SLITHER.DOC < prev    next >
Text File  |  1987-03-30  |  24KB  |  567 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                                  SLITHER
  10.  
  11.                      Arcade Action without the Arcade
  12.  
  13.                                Version 2.12
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.                                INTRODUCTION
  21.  
  22.           Imagine an enchanted  snake,  slithering  along  the  desert
  23.      sand.   It moves quickly along, turning left and right, in search
  24.      of tasty morsels to satisfy its  hunger.    At  last!    Directly
  25.      ahead,  a  small piece of food comes into view.   The snake heads
  26.      forward at top speed and hungrily clamps its massive  jaws  shut.
  27.      The  enchantment  allows it to digest the food instantly,  and it
  28.      begins to grow.  In no time,  it's almost twice as long as it was
  29.      before.   But alas, along with the enchantment comes a curse; the
  30.      poor snake cannot rest,  but must keep moving,  ever in search of
  31.      more  food  so that it may grow,  and grow.   The snake must also
  32.      hurry, for in the desert sun, food goes bad very quickly;  if the
  33.      food is not eaten soon after it appears, it will become hard as a
  34.      rock.   And woe be to it,  if in its haste the snake should  trip
  35.      over  itself  or run into a wall,  for the enchantment would fade
  36.      away, and the snake would be no more.
  37.  
  38.           This fanciful scenario is the  basis  of  SLITHER,  a  fast-
  39.      action game requiring quick planning and quick reflexes.  SLITHER
  40.      runs  under  MS-DOS*  2.0 or later on IBM-PCs or compatibles with
  41.      almost any video display or terminal.   No special graphics hard-
  42.      ware is required.   SLITHER should also work with non-IBM compat-
  43.      ible MS-DOS machines, but we haven't tested it.
  44.  
  45.  
  46.  
  47.  
  48.                          Copyright (c) 1984,1986
  49.  
  50.                               Nirvonics, Inc.
  51.                                P.O. Box 5062
  52.                            Plainfield, NJ  07061
  53.  
  54.  
  55.  
  56.  
  57.           * IBM-PC is a registered trademark of IBM Corp.
  58.         MS-DOS is a registered trademark of Microsoft.
  59.  
  60.  
  61.  
  62.                 LICENSE
  63.  
  64.  
  65.      SLITHER is copyrighted by Nirvonics, Inc.   Permission is granted
  66.      to use, copy and distribute SLITHER providing that:
  67.  
  68.       NO FEE IS CHARGED FOR USE, COPYING OR DISTRIBUTION.
  69.  
  70.       IT IS NOT MODIFIED IN ANY WAY.
  71.  
  72.       THIS NOTICE MUST BE INCLUDED WITH ANY COPY OF SLITHER.
  73.  
  74.      Clubs  and  user groups may charge a nominal fee for expenses and
  75.      handling while distributing SLITHER.
  76.  
  77.      This program is provided AS IS without any warranty, expressed or
  78.      implied,  including  but  not limited to fitness for a particular
  79.      purpose.
  80.  
  81.      If you enjoy SLITHER, a contribution would be appreciated.  For a
  82.      contribution  of  $20 you will receive a diskette with the latest
  83.      version of SLITHER and a hardcopy manual  (complete  with  glossy
  84.      cover).
  85.  
  86.      For a list of other software from Nirvonics, send a SASE to:
  87.  
  88.  
  89.                               Nirvonics, Inc.
  90.                                P.O. Box 5062
  91.                            Plainfield, NJ  07061
  92.  
  93.  
  94.  
  95.                                 THE PROGRAM
  96.  
  97.  
  98.      Starting Out for the First Time
  99.      -------- --- --- --- ----- ----
  100.          (or, What to Do When Just Running It Didn't Quite Work)
  101.           --- ---- -- -- ---- ---- ------- -- ------ ----- ----
  102.  
  103.           SLITHER requires two data files in order to run.   The first
  104.      of  these  is  a  system  configuration  file called NIRVOSYS.PSF
  105.      (which is used by most software from Nirvonics, Inc.).  This file
  106.      contains terminal definition information, which tells SLITHER how
  107.      to talk to your console terminal (or  display)  in  order  to  do
  108.      things  like  clearing  the  screen  and  moving  the cursor to a
  109.      specific position.   If you do not already  have  a  NIRVOSYS.PSF
  110.      with  your terminal definition in it,  you can create one by run-
  111.      ning the program TERMSET,  supplied  on  the  distribution  disk.
  112.      TERMSET  allows  you to choose from a number of standard terminal
  113.      types, or to define your own type.  See Appendix A for details on
  114.      using TERMSET.
  115.  
  116.           The second data file SLITHER requires is called SLITHER.DAT.
  117.      SLITHER uses this file to keep track  of  players'  high  scores.
  118.      The first time you run SLITHER, it will create a SLITHER.DAT file
  119.      with an empty scoreboard.
  120.  
  121.           When SLITHER is looking for one of  these  files,  it  tries
  122.      some of the most reasonable (disk) directories (in particular, it
  123.      will look anywhere that  the  operating  system  might  look  for
  124.      program files).   If the file is not in any of these directories,
  125.      SLITHER will ask you where it should be.  You can then tell it in
  126.      which (disk) directory the file should reside.  Normally, it will
  127.      find it by itself, and this will not be necessary.
  128.  
  129.  
  130.      Timing Calibration
  131.      ------ -----------
  132.  
  133.           Since SLITHER is a real-time game,  it must perform  certain
  134.      actions  at  specific times,  with fraction-of-a-second accuracy.
  135.      The first time SLITHER is run,  it attempts to  calibrate  itself
  136.      for  the  particular  computer,  using  the  system  clock  as  a
  137.      reference.
  138.  
  139.       You can force SLITHER to calibrate again  (if,  for example,
  140.      you switch to a slower terminal) by typing:
  141.  
  142.             SLITHER CALIBRATE
  143.  
  144.  
  145.  
  146.      Running the Program  (or, OK, Already!  Let's PLAY!)
  147.      ------- --- -------   --- --- --------  ----- -----
  148.  
  149.           After  you have created the configuration file,  you can run
  150.      the program by typing:
  151.  
  152.                     SLITHER
  153.                - or -
  154.                     SLITHER BELL
  155.  
  156.      The program will then play demonstration games  by  itself  while
  157.      you read the rest of the manual.   When you use "SLITHER BELL", a
  158.      bell will ring whenever you hit an object  on  the  screen,  just
  159.      like in the arcades!
  160.  
  161.           At  any time,  SLITHER will be in one of several modes.   It
  162.      starts in Demo mode and returns to it  whenever  it  isn't  doing
  163.      anything else.  In Demo mode, SLITHER plays games against itself,
  164.      randomly picking difficulty levels for each new game.    In  this
  165.      way,  a beginning player or a curious onlooker can get an idea of
  166.      how the game works.  It's also just plain fun to watch,  even for
  167.      experienced players.
  168.  
  169.           While SLITHER is in Demo mode,  and some of the other modes,
  170.      it displays,  on the bottom line of the screen,  a list of  modes
  171.      and the keys used to switch to each mode.  The modes which may be
  172.      selected, whenever this display is visible, are Instruction mode,
  173.      Scoreboard mode, and Game mode.
  174.  
  175.           To play a game, enter Game mode by typing "P" (for play), or
  176.      a carriage return (the normal end-of-line  key,  usually  labeled
  177.      "RETURN"  or  "ENTER").    Type "L" to choose a difficulty level;
  178.      start with level 1 to get used to the game,  then experiment with
  179.      other  levels.    The  higher  the level,  the faster things move
  180.      around on the screen,  but the more points you receive  for  each
  181.      target.
  182.  
  183.           When  you  finish  a game,  SLITHER will automatically enter
  184.      Scoreboard mode for a short time before returning to  Demo  mode.
  185.      To  enter  Scoreboard mode at any other time,  press the "S" key.
  186.      Scoreboard mode provides a list of the players with  the  highest
  187.      scores and a list of the longest snakes achieved at each level of
  188.      difficulty.
  189.  
  190.           The remaining mode is Instruction mode and may be entered by
  191.      pressing  the  "I"  key.    This mode gives an explanation of the
  192.      rules of the game.   These are the same rules,  if not  the  same
  193.      words, as given in the next section of the manual.
  194.  
  195.  
  196.  
  197.                                  THE GAME
  198.  
  199.  
  200.      The Rules
  201.      --- -----
  202.  
  203.           The  object  of  the  game  is to score points by making the
  204.      snake eat food.   The snake is represented on  the  screen  as  a
  205.      string  of "*" symbols which move together across the screen at a
  206.      constant speed.   You can control the direction that the  snake's
  207.      head turns.  The rest of the snake follows the head.
  208.  
  209.           At  random times,  pieces of food will appear on the screen.
  210.      These are shown as single digit numbers.   The number for a piece
  211.      of food represents its current value.   Food values count down at
  212.      a constant rate until they reach zero,  and  the  food  goes  bad
  213.      (represented by an "@" symbol on the screen).   The initial value
  214.      and the countdown rate vary from one piece of food to another.
  215.  
  216.           To make the snake eat a piece of food,  simply maneuver  the
  217.      head  to  the  same spot as the food;  instinct will take it from
  218.      there.  When the snake eats a piece of food, its tail grows,  ad-
  219.      ding one "*" for each unit of food value.  At the same time, your
  220.      score increases by an amount proportional to the food  value  and
  221.      the difficulty level.
  222.  
  223.           As  you move the snake's head around the screen,  be careful
  224.      not to let it hit the walls or any other part of the snake.    If
  225.      you do,  the enchantment fails,  and the game ends.  Also, if the
  226.      snake eats a piece of food that has gone bad, it will suffer from
  227.      a terminal case of indigestion, ending the game.
  228.  
  229.           If  your  score  at  the end of the game is among the top 15
  230.      scores of all time,  or is the highest score for the current dif-
  231.      ficulty  level,  SLITHER will ask for your name and add it to the
  232.      scoreboard.
  233.  
  234.  
  235.      The Controls
  236.      --- --------
  237.  
  238.           There are only four controls used  to  play  SLITHER:  LEFT,
  239.      RIGHT,  UP,  and DOWN.  These are the directions (from your point
  240.      of view) that the snake's head should turn.  When no controls are
  241.      pressed, the snake will continue moving in the same direction.
  242.  
  243.           Even though there are only four controls,  there are a large
  244.      number of keys which may be used for these controls.    Thus  you
  245.      may choose a set most appropriate for your keyboard and your par-
  246.      ticular tastes (and handedness).
  247.  
  248.  
  249.  
  250.           If your keyboard has a numeric keypad, a common choice is to
  251.      use "8" for UP,  "4" for LEFT,  "6" for RIGHT,  and "2" for DOWN.
  252.      Also popular is the set: "8" for UP, "4" for LEFT, "6" for RIGHT,
  253.      and "5" for DOWN.  These sets may be represented graphically as:
  254.  
  255.                             8               8
  256.                           4   6    and    4 5 6
  257.                             2
  258.  
  259.           The  above  selections  are popular because the keys are ar-
  260.      ranged in a cluster with the placement of keys relative  to  each
  261.      other corresponding to the direction of movement.   Such clusters
  262.      are sometimes called "direction diamonds".   Other common  direc-
  263.      tion diamonds are:
  264.  
  265.               U        9                           W        0
  266.             H   K    I O P    or, for lefties    A   D    I O P
  267.             space                                space
  268.  
  269.           You  may use any of the above sets or choose your own.   The
  270.      keys which correspond to each control are:
  271.  
  272.                          LEFT:     4, A, S, G, H, I
  273.                          RIGHT:    6, D, F, J, K, P
  274.                          UP:       8, 9, 0, W, E, R, Y, U
  275.                          DOWN:     2, 5, Z, X, C, O, space
  276.  
  277.           If your terminal has ARROW KEYS, they may also be used.
  278.  
  279.  
  280.      Game Variations
  281.      ---- ----------
  282.  
  283.           SLITHER now allows 12 different styles of play.   There  are
  284.      four target types and three game types.
  285.  
  286.           The four target types are listed below:
  287.  
  288.                -- Stationary (normal, easiest)
  289.                -- Bouncing
  290.                -- Wandering
  291.                -- Dodging (hardest)
  292.  
  293.           In  games  using  any  of  the  three  moving  target  types
  294.      (bouncing, wandering,  and dodging),  each target is randomly as-
  295.      signed a speed when it first appears;   this speed can be as fast
  296.      as,  but not faster than,  the snake's speed.   Bouncing  targets
  297.      move in a straight line until they reach an obstacle;   then they
  298.      turn around and go the  other  way.    Wandering  targets  change
  299.      direction randomly,  at random times.  Dodging targets attempt to
  300.      move away from the snake.
  301.  
  302.  
  303.  
  304.           In addition to the normal,  one-snake,  game,  there are two
  305.      other  game  types:  two-snake and two-player.   In each of these
  306.      two games, two targets and two snakes appear on the screen.
  307.  
  308.           The second snake (shown by "%" symbols  on  the  screen)  is
  309.      controlled  by  the computer in a two-snake game,  or by a second
  310.      player in the two-player game.   Each snake must avoid  not  only
  311.      itself and the walls,  but also the other snake.   When one snake
  312.      dies,  and a player's snake is still alive,  the game  continues,
  313.      with the dead snake remaining limp on the screen as an obstacle.
  314.  
  315.  
  316.      Selecting Game Variations
  317.      --------- ---- ----------
  318.  
  319.           When  Game  mode  has been selected,  but a game has not yet
  320.      begun,  a display will appear showing the current target and game
  321.      types (described above), along with the current difficulty level.
  322.      Typing the "T" key will step through the available target  types;
  323.      the "G" key will step through the game types.   Repeat these keys
  324.      until you reach the game and target types you would like.  If you
  325.      type "L", you will be prompted to select a difficulty level.
  326.  
  327.           A  similar  display  appears  when  a  scoreboard  is on the
  328.      screen.     Each  scoreboard  is  for  one  of  the  twelve  game
  329.      variations;   use   the  "T"  and  "G"  keys  to  view  different
  330.      scoreboards.
  331.  
  332.  
  333.      Controls for the Two-Player Game
  334.      -------- --- --- ---------- ----
  335.  
  336.           When you choose the two-player game,  you will  be  able  to
  337.      select which player will use which control keys.  When SLITHER is
  338.      first started, the left player ("*") can use any of these keys:
  339.  
  340.                LEFT:   A, S, G
  341.                RIGHT:  D, F, J
  342.                UP:     W, E, R, Y
  343.                DOWN:   Z, X, C
  344.  
  345.      The right player ("%") can use:
  346.  
  347.                LEFT:   4, H, I, left-arrow
  348.                RIGHT:  G, K, P, right-arrow
  349.                UP:     8, 9, 0, U, up-arrow
  350.                DOWN:   2, 5, O, space, down-arrow
  351.  
  352.           If players wish to use keys normally assigned to  the  other
  353.      player,  the  keys can easily be redistributed.   If you type the
  354.      "K" key before the two-player game starts,  each player  will  be
  355.      given  a  chance  to  choose the four keys he wants to use in the
  356.      game.  The only restriction is that each player must pick one key
  357.      of  each  direction.   The keys that a player chooses will remain
  358.      his until changed again.
  359.  
  360.  
  361.  
  362.                   CUSTOMIZATIONS
  363.  
  364.  
  365.      Changing Game Symbols
  366.      -------- ---- -------
  367.  
  368.      SLITHER  allows  you  to  change  the symbols it uses to draw the
  369.      snakes,  rocks,  and the border around the  playing  field.    To
  370.      change any of these, run SLITHER with a SYMBOLS argument:
  371.  
  372.             SLITHER SYMBOLS
  373.  
  374.      SLITHER will prompt you for the information it needs.
  375.  
  376.  
  377.      Changing Colors
  378.      -------- ------
  379.  
  380.      If  you are using an IBM-compatible color display  (terminal type
  381.      IBM-CGA),  SLITHER can display the  various  symbols,  text,  and
  382.      background  in different colors.    To change the default colors,
  383.      run SLITHER with a COLORS argument:
  384.  
  385.             SLITHER COLORS
  386.  
  387.      SLITHER will prompt you for the information it needs.
  388.  
  389.  
  390.  
  391.                         APPENDIX A:  USING TERMSET
  392.  
  393.  
  394.      Purpose
  395.      -------
  396.  
  397.           TERMSET is Nirvonics' utility for creating data  sets  which
  398.      define the characteristics and capabilities of terminals, for use
  399.      by  programs  which  desire  to  do  device-independent  terminal
  400.      manipulation.
  401.  
  402.           TERMSET  uses two data files.   The first is the system con-
  403.      figuration file,  NIRVOSYS.PSF.   When you configure  a  terminal
  404.      definition  for  your  computer,  it  will be put into this file.
  405.      This is the same data file that other software packages from Nir-
  406.      vonics use,  so if you already have such a file, terminal defini-
  407.      tions will be added  to  it.    Otherwise,  it  will  be  created
  408.      automatically by TERMSET.  Users who have more than one terminal,
  409.      or have terminals with several modes,  can put a terminal defini-
  410.      tion  for  each  each  into  NIRVOSYS.PSF,  and  can  indicate to
  411.      programs which of them is the one to use at any given  time  (see
  412.      below).
  413.  
  414.           The second data file used by TERMSET is called TTYTYPES.PSF.
  415.      This file holds many standard terminal configurations.   In fact,
  416.      most  people will find that their terminal or computer is already
  417.      defined in this file.   Just as SLITHER  searches  (disk)  direc-
  418.      tories to find its files, so TERMSET hunts for its.  If it cannot
  419.      find one, it will ask you where it is, and you can tell it.
  420.  
  421.  
  422.      Using TERMSET
  423.      ----- -------
  424.  
  425.           To create a data set for your terminal (video monitor), type
  426.      "TERMSET".   The program will give you the choice of selecting an
  427.      existing terminal definition,  selecting a previously  configured
  428.      terminal,  or creating a new one.  If your terminal, or computer,
  429.      is one of the standard choices, you're in luck;  simply select it
  430.      and you're on your way.  If you wish to reuse a configuration you
  431.      made earlier,  select  it  and  you  are  just  as  easily  done.
  432.      Otherwise,  TERMSET  will  need  to ask you a number of questions
  433.      about your terminal,  such as the character(s) which must be sent
  434.      to  clear  the  screen;  be prepared to wade through the terminal
  435.      documentation or to find someone with more detailed knowledge  of
  436.      the terminal.
  437.  
  438.           After a terminal configuration has been chosen/created,  you
  439.      will be given a chance to test it.   If the configuration is  for
  440.      the terminal you are currently working on, you should do so (just
  441.      to make sure it really  works!).    If  it  is  for  a  different
  442.      terminal,  it is probably best not to test it.   In the test, all
  443.      of the features are checked out.   If they all work ok,  you will
  444.      be prompted for a configuration name.  The configuration data set
  445.      will be stored in NIRVOSYS.PSF with this name,  so that more that
  446.      one  configuration  can  be stored there without overwriting each
  447.      other.
  448.  
  449.  
  450.  
  451.      Setting the Default Configuration
  452.      ------- --- ------- -------------
  453.  
  454.           In addition to the named terminal  configurations  for  each
  455.      terminal  or  mode  which you have,  NIRVOSYS.PSF has a "default"
  456.      configuration.  This is a copy of one of your configurations with
  457.      a special name (in particular, a blank name) which tells all Nir-
  458.      vonics programs that it represents  the  current  terminal.    To
  459.      select a default configuration,  type "TERMSET xxx",  where "xxx"
  460.      means the name that you gave the terminal configuration for  your
  461.      current terminal.  For example, typing "TERMSET VT100" might tell
  462.      Nirvonics programs that you just hooked up your  new  VT100  ter-
  463.      minal instead of the old ADM3A that you were using a minute ago.
  464.  
  465.  
  466.      Standard Terminal Types
  467.      -------- -------- -----
  468.  
  469.      The  terminal  configurations which TERMSET knows about represent
  470.      what information we were able to  obtain  from  various  sources.
  471.      Many of these configurations are probably incomplete and may even
  472.      be incorrect.   We will be glad to help you with any problems and
  473.      would  like to know about any changes you find necessary,  or new
  474.      terminal types.
  475.  
  476.      For the IBM-PC and compatibles,  try the IBM-MONO terminal  type.
  477.      If this doesn't work, then try IBM-ANSI.
  478.  
  479.      If  you  have  an IBM-PC (or compatible) with a color display you
  480.      might want to try the IBM-CGA terminal type.    SLITHER can  then
  481.      take advantage of the color capabilities.
  482.  
  483.  
  484.      Cursor Problems with IBM Clones
  485.      ------ -------- ---- --- ------
  486.  
  487.      Some IBM compatibles have a bug in their  ROM  BIOS  which  makes
  488.      them indicate the wrong number of scan lines when the cursor type
  489.      is requested.   If your machine has this property,  you will find
  490.      the cursor ending up in unusual positions  (such as the middle of
  491.      a character)  after being turned off by Nirvonics programs  (such
  492.      as TERMSET's cursor test).
  493.  
  494.      To correct this problem, you can use TERMSET to change your term-
  495.      inal definition,  and supply the number of scan lines explicitly.
  496.      Typically,  this will be 8 for color monitors and  14  for  mono-
  497.      chrome.    If you don't know the right value,  just try something
  498.      and see where the cursor ends up.
  499.  
  500.  
  501.      Old Terminal Definitions
  502.      --- -------- -----------
  503.  
  504.      If you have old terminal definitions from a previous release of a
  505.      Nirvonics program  (you can check for this by running LSPSET  and
  506.      looking  for  TERMLIB  entries with version numbers less than 4),
  507.      and you don't want to use the new standard definitions,  you  can
  508.      run NEWTERM instead of TERMSET.  It will convert old-style defin-
  509.      itions to new ones.
  510.  
  511.  
  512.  
  513.                        APPENDIX B:  TROUBLE-SHOOTING
  514.  
  515.  
  516.           SLITHER  has  been  designed  to operate as automatically as
  517.      possible.   In spite of this (and  sometimes  because  of  this),
  518.      there  are problems which could conceivably arise.   This section
  519.      attempts to describe some problems which might occur and to  sug-
  520.      gest  some solutions.   Hopefully,  you will have no need of this
  521.      section.
  522.  
  523.  
  524.  
  525.      SLITHER Consistently Cannot Find Its Data Files
  526.      ------- ------------ ------ ---- --- ---- -----
  527.  
  528.           Nirvonics  programs tell you where they looked for important
  529.      data files.   They look in some of  the  most  reasonable  (disk)
  530.      directories  (in  particular,  they  will  look anywhere that the
  531.      operating system might look for program files.  For example,  un-
  532.      der MS-DOS they will look in the current directory, all director-
  533.      ies on the PATH,  and all directories in the path list  given  by
  534.      the DATAPATH environment variable).    These important data files
  535.      only need to be created once,  and should thereafter be stored in
  536.      one of these reasonable places.    NIRVOSYS.PSF  should  probably
  537.      even reside on the main program (disk) directory.
  538.  
  539.  
  540.  
  541.      Screen Fills with Random Garbage
  542.      ------ ----- ---- ------ -------
  543.  
  544.           You have probably made a mistake in configuring SLITHER  for
  545.      your  terminal,  or  forgot  to  set  the default terminal.   Run
  546.      TERMSET again.  Make sure to use the Test section of TERMSET.
  547.  
  548.           Some things to watch out for: certain characters may be  in-
  549.      tercepted by the system and interpreted specially;  in particular
  550.      <13>,  <9>,  and <0>.   These can usually be replaced  by  <141>,
  551.      <137>, and <128>, respectively.
  552.  
  553.  
  554.  
  555.      Occasional Garbage Appears on the Screen and/or
  556.      ---------- ------- ------- -- --- ------ ------
  557.            Response to Keyboard Controls Seems Sluggish
  558.            -------- -- -------- -------- ----- --------
  559.  
  560.           Some  terminals  cannot keep up with a steady stream of com-
  561.      mands at high Baud rates (speed of sending characters between the
  562.      computer  and  the  terminal).   There are two ways to get around
  563.      this.  One is to lower the Baud rate to the terminal.   The other
  564.      is  to  add  delays to the control strings in NIRVOSYS.PSF (using
  565.      TERMSET).
  566.  
  567.